home *** CD-ROM | disk | FTP | other *** search
/ Die Speccy' 97 / Die Speccy' 97.iso / amiga_system / the_aminet / comm / bbs / bbbbs85.lha / rexx / bbsHOURLY.rexx < prev    next >
OS/2 REXX Batch file  |  1995-01-25  |  2KB  |  131 lines

  1. /* $VER: 8.4 bbsHourly.rexx (25.1.95)
  2. copyright 1990-95 Richard Lee Stockton FREELY DISTRIBUTABLE
  3. keeps track of minutes of use per hour
  4. */
  5.  
  6. thishour=0
  7. prevhour=0
  8. prevhour2=0
  9. prevhour3=0
  10.  
  11. PARSE ARG hour min hours mins hourly_dir .
  12. mins=mins+hours*60
  13.  
  14. CALL MAKEDIR(hourly_dir)
  15. IF ~EXISTS(hourly_dir'/Hour') THEN
  16.   CALL countcheck(hourly_dir'/Hour' TIME('H'))
  17. IF ~EXISTS(hourly_dir'/Start') THEN
  18.   CALL countcheck(hourly_dir'/Start' DATE('I'))
  19.  
  20. IF min>=mins THEN thishour=mins
  21. ELSE
  22.   DO
  23.     thishour=min
  24.     prevhour=mins-min
  25.     IF prevhour>60 THEN
  26.       DO
  27.         prevhour2=prevhour-60
  28.         prevhour=60
  29.         IF prevhour2>60 THEN
  30.           DO
  31.             prevhour3=prevhour2-60
  32.             prevhour2=60
  33.           END
  34.       END
  35.   END
  36.  
  37. IF hour=0 THEN
  38.   DO
  39.     prev=23
  40.     prev2=22
  41.     prev3=21
  42.   END
  43. ELSE IF hour=1 THEN
  44.   DO
  45.     prev=0
  46.     prev2=23
  47.     prev3=22
  48.   END
  49. ELSE IF hour=2 THEN
  50.   DO
  51.     prev=1
  52.     prev2=0
  53.     prev3=23
  54.   END
  55. ELSE
  56.   DO
  57.     prev=hour-1
  58.     prev2=hour-2
  59.     prev3=hour-3
  60.   END
  61.  
  62. thishour=thishour+countcheck(hourly_dir'/'hour 0)
  63. CALL countcheck(hourly_dir'/'hour thishour)
  64.  
  65. IF prevhour>0 THEN
  66.   DO
  67.     prevhour=prevhour+countcheck(hourly_dir'/'prev 0)
  68.     CALL countcheck(hourly_dir'/'prev prevhour)
  69.   END
  70.  
  71. IF prevhour2>0 THEN
  72.   DO
  73.     prevhour2=prevhour2+countcheck(hourly_dir'/'prev2 0)
  74.     CALL countcheck(hourly_dir'/'prev2 prevhour2)
  75.   END
  76.  
  77. IF prevhour3>0 THEN
  78.   DO
  79.     prevhour3=prevhour3+countcheck(hourly_dir'/'prev3 0)
  80.     CALL countcheck(hourly_dir'/'prev3 prevhour3)
  81.   END
  82.  
  83. EXIT
  84.  
  85.  
  86. countcheck:
  87. PARSE ARG fname' 'cknum .
  88. IF ~EXISTS(fname) THEN
  89.   DO
  90.     IF ~writeopen(fname) THEN RETURN(0)
  91.     CALL WRITELN(f,cknum)
  92.     CALL CLOSE(f)
  93.     RETURN(cknum)
  94.   END
  95. IF ~readopen(fname) THEN RETURN(cknum)
  96. retval=STRIP(READLN(f))
  97. CALL CLOSE(f)
  98. IF ~DATATYPE(retval,'N') THEN retval=0
  99. IF ~DATATYPE(cknum,'N') THEN cknum=0
  100. IF retval<cknum THEN
  101.   DO
  102.     IF writeopen(fname) THEN
  103.       DO
  104.         CALL WRITELN(f,cknum)
  105.         CALL CLOSE(f)
  106.         RETURN(cknum)
  107.       END
  108.   END
  109. RETURN(retval)
  110.  
  111.  
  112. readopen:
  113. PARSE ARG fname
  114. ok=OPEN(f,fname,'R')
  115. IF ok~=0 THEN RETURN(1)
  116. line=fname 'failed to open for reading!'
  117. SAY line
  118. RETURN(0)
  119.  
  120.  
  121. writeopen:
  122. PARSE ARG fname
  123. CALL CLOSE(f)
  124. ok=OPEN(f,fname,'W')
  125. IF ok~=0 THEN RETURN(1)
  126. line=fname 'failed to open for writing!'
  127. SAY line
  128. RETURN(0)
  129.  
  130. /* bbsHourly.rexx */
  131.